package com.chenglu.android.order.mvp.contract;



import com.chenglu.android.common.base.BaseView;
import com.chenglu.android.mine.bean.CommonDataBean;
import com.chenglu.android.order.bean.OrderInfoBean;
import com.chenglu.android.orderinfo.bean.OrderDetailBean;
import com.chenglu.android.orderinfo.bean.QrcodeBean;
import com.chenglu.android.payment.bean.CouponListBean;
import com.chenglu.android.payment.bean.PayOrderBean;
import com.chenglu.android.payment.bean.TenantIdPayMethod;

import java.util.Map;

import io.reactivex.rxjava3.core.Observable;
import okhttp3.RequestBody;

/**
 * @author: lyj
 * @Created by Copyright 2023/3/2 Guangzhou Hongma Technology Co., Ltd. All rights reserved.
 *
 */
public interface OrderContract {

    /**
     *
     * @description model
     *
     */

    public interface OrderModel {


        Observable<CouponListBean> getCouponList(String token, RequestBody requestBody);

        //店铺类型的支付方式
        Observable<TenantIdPayMethod> getenantIdPayMethod(String token, String payClient, String tenantId);

        Observable<PayOrderBean> getPayOrder(String token, RequestBody requestBody);

        Observable<OrderInfoBean> getOrderList(String token, Map<String, String> map);

        Observable<CommonDataBean> getOrderCancel(String token, String id);

        Observable<CommonDataBean> getOrderRemove(String token, String ids);

        Observable<CommonDataBean> getOrderReceiving(String token, String id);

        //   //    case none = 0                /// 空
        ////    case shop = 1                /// 商超
        ////    case restaurant = 2          /// 餐饮
        ////    case beauty = 3              /// 美业
        ////    case education = 4           /// 教育
        ////    case minimart = 8            /// 便利店
        ////    case pharmaceuticals = 9     /// 药店
        ////    case breed = 10              /// 孕育
        ////    case max = 999               /// 平台公共
        Observable<OrderDetailBean> getOrderInfo(String token, String id);

        Observable<OrderDetailBean> getOrderBreedInfo(String token, String id);

        Observable<OrderDetailBean> getRestautantInfo(String token, String id);

        Observable<OrderDetailBean> getBeautyInfo(String token, String id);

        Observable<OrderDetailBean> getEducationInfo(String token, String id);

        Observable<OrderDetailBean> getMinimartInfo(String token, String id);

        Observable<OrderDetailBean> getPharmaceuticalsInfo(String token, String id);

        Observable<QrcodeBean> getBeautyQrcode(String token, String id);

        Observable<QrcodeBean> getEducationQrcode(String token, String id);




    }
    /**
     *
     * @description view
     *
     */

    interface View extends BaseView {
        @Override
        void showLoading();

        @Override
        void dismissLoading();

        @Override
        void onEmpty(Object tag);

        @Override
        void onError(String errMessage);


        void getCouponList(CouponListBean bean);

        void getenantIdPayMethod(TenantIdPayMethod bean);



        void getPayOrder(PayOrderBean bean);

        void getOrderList(OrderInfoBean bean);

        void getOrderCancel(CommonDataBean bean);

        void getOrderRemove(CommonDataBean bean);

        void getOrderReceiving(CommonDataBean bean);

        //商超
        void getOrderInfo(OrderDetailBean bean);

        void getQrCodeInfo(QrcodeBean bean);



    }

    /**
     *
     * @description presenter
     *
     */

    interface OrderPresenter {




        void getCouponList(String token, RequestBody requestBody);

        void getenantIdPayMethod(String token, String payClient, String tenantId);

        void getPayOrder(String token, RequestBody requestBody);

        void getOrderList(String token,Map<String,String> map);

        void getOrderCancel(String token,String id);

        void getOrderRemove(String token,String ids);

        void getOrderReceiving(String token,String id);

        void getOrderInfo(String token,String id,int shopsTypeId);

        void getQrCodeInfo(String token,String id,int shopsTypeId);


    }
}